﻿#ifndef MYMENUITEMBTN_H
#define MYMENUITEMBTN_H

#include <QObject>
#include <QWidget>
#include <QPushButton>
#include <QString>
#include <QSize>
#include <QIcon>
#include <QFile>

#include "DebugPrint/myDebugPrint.h"
#include "ENUM/enum.h"

/*
 * menuWidget组件中的按钮
 */

class MenuItemBtn : public QPushButton
{
    Q_OBJECT

public:
    MenuItemBtn();
    QSize setBtnFixedSize(const QSize &size);                           // 设置当前按钮固定的大小
    bool setBtnStyleSheet(const QString& qss);                          // 设置当前按钮的QSS布局
    bool setBtnIcon(const QString &iconPath,const btnIconKind &kind);   // 设置当前按钮的Icon图标
    bool setBtnIconSize(const QSize &size);                             // 设置当前按钮Icon图标的大小
    bool setBtnSize(const QSize &size);                                 // 修改按键的大小
    bool setBtnStatus(const btnStatus& status);                         // 用于设置当前按钮状态
private slots:
    void btnClicked();                                                  // 按钮点击槽函数
    void btnPressed();                                                  // 按钮长按槽函数
signals:
    void myPressed();
    void myCliecked(MenuItemBtn* Btn);
private:
    QString generalIconPath;                                            // 正常状态下按钮的Icon地址
    QString clickingIcon;                                               // 按钮按住时的Icon地址
    QString clickedIcon;                                                // 按钮按下后的Icon地址
    QSize sizeLen;                                                      // 给按钮设置大小
    bool isClick = false;                                               // 用于判断当前按钮是否打开状态
};

#endif // MYMENUITEMBTN_H
